package dbmgr

import (
	"github.com/beego/beego/v2/client/orm"
	"github.com/beego/beego/v2/core/logs"
	beego "github.com/beego/beego/v2/server/web"
	_ "github.com/mattn/go-sqlite3"
)

// 包初始化函数
func sqlite3_init() {
	logs.Info("begin regist sqlite3")

	// maxConn := 4 // 根据CPU核心数调整
	// orm.SetMaxOpenConns("default", maxConn)
	// orm.SetMaxIdleConns("default", maxConn/2)

	// 初始化数据库
	sqlite3_initDatabase()

	logs.Info("sqlite3 suc")
}

func sqlite3_initDatabase() {
	dbPath, err := beego.AppConfig.String("dbPath")
	if err != nil {
		logs.Error("load conf file failed")
		return
	}

	// 注册SQLite驱动
	orm.RegisterDriver("sqlite3", orm.DRSqlite)

	// 配置数据库（带连接池参数）
	orm.RegisterDataBase("default",
		"sqlite3",
		dbPath,
		orm.MaxIdleConnections(5),
		orm.MaxOpenConnections(10),
	)

	// 开发模式显示SQL日志
	if beego.BConfig.RunMode == "dev" {
		orm.Debug = true
	}
}
